Nginx 开启图片缓存与 Gzip
设置图片缓存 #
在Nginx配置文件中添加如下设置
server {
server_name your-domain.com;
location /route1 {
# settings here
}
location /route2 {
# settings here
}
location ~* ^/route1/.+\.(jpg|jpeg|png|gif|ico)$ {
root /your/image/location;
try_files $uri $uri/ =404;
expires 2d;
add_header Cache-Control "public";
}
location ~* ^/route2/.+\.(jpg|jpeg|png|gif|ico)$ {
root /your/second/image/location;
try_files $uri =404; # Important to serve static files correctly
expires 2d;
add_header Cache-Control "public";
}
# other settings
}
正则表达式解读:
~*
:这个修饰符告诉Nginx,正则匹配不区分大小写。~
表示正则表达式匹配,*
使其不区分大小写。这意味着,无论请求是.JPG
还是.jpg
,都将匹配。^
:这个符号在正则表达式中用来表示字符串的开始。在这里,它意味着匹配必须从请求URI的开始处开始。/route1/
:这部分指定了必须出现在^
之后的请求URI开头的路径。所以,请求URI必须以/route1/
开头才能匹配。.+
:在正则表达式中,.
匹配任何单个字符(除了行终止符),+
表示前面的元素“一个或多个”。所以,.+
匹配一个或多个任意字符,确保在/route1/
之后有一些内容,然后才是文件扩展名。\.
:反斜杠\
是正则表达式中的转义字符,在这里用来表示后面的点.
应被视为字面上的点字符,而不是正则表达式中“任何单个字符”的特殊含义。(jpg|jpeg|png|gif|ico)
:这是一个由括号()
表示的组,包含由管道|
字符分隔的几个选项,该字符充当“或”运算符。这意味着URI可以以这些文件扩展名中的任何一个结束,才被视为匹配。$
:这个符号在正则表达式中用来表示字符串的结束。它表示模式必须匹配到请求URI的末尾。
设置开启Gzip #
在Nginx配置文件中添加如下设置
server {
server_name your-domain.com;
location / {
root /your/files/location;
try_files $uri $uri/ /index.html;
# Enable gzip compression
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
}